package com.yt.product.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.yt.product.mapper.ProductInfoMapper;
import com.yt.product.models.bo.ProductInfoBO;
import com.yt.product.models.dto.ProductInfoDTO;
import org.apache.dubbo.config.annotation.DubboService;
import org.springframework.beans.BeanUtils;
import javax.annotation.Resource;
import com.yt.product.common.config.YmlConfig;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.yt.product.mapper.ProductCategoryMapper;
import com.yt.product.models.service.IProductCategoryService;
import com.yt.product.models.bo.ProductCategorySaveBO;
import com.yt.product.models.dto.ProductCategoryDTO;

import java.util.Date;

/**
 * 产品类别信息控制器
 *
 * @author lianyadong
 * @Date 2025-09-03 14:16:35
 */
@DubboService
public class ProductCategoryServiceImpl extends ServiceImpl<ProductCategoryMapper, ProductCategoryDTO> implements IProductCategoryService{

    @Resource
    private YmlConfig ymlConfig;
    @Resource
    private ProductInfoMapper productInfoMapper;

    // 1. 状态更新时查询产品（仅需单表数据，调用自定义的selectById）
    public ProductInfoDTO selectById(Long id) {
        // 直接调用Mapper的selectById（已覆盖默认方法）
        return productInfoMapper.selectById(id);
    }

    // 2. 列表查询时调用关联查询（保留原有逻辑）
    public Page<ProductInfoDTO> queryProductWithRelation(Page<ProductInfoDTO> page, ProductInfoBO bo) {
        return page.setRecords(productInfoMapper.selectProductWithRelation(page, bo));
    }
    @Override
    public boolean add(ProductCategorySaveBO saveBO) {
        ProductCategoryDTO dto = new ProductCategoryDTO();
        BeanUtils.copyProperties(saveBO,dto);
        Long id = ymlConfig.getPkId();
        dto.setId(id);
        // 补充创建时间和更新时间
        Date now = new Date();
        dto.setCreateTime(now);
        dto.setUpdateTime(now);
        return this.insert(dto);
    }
}

